package com.neouton.crm.enterprise.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.neouton.crm.enterprise.entity.EnterpriseVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface EnterpriseMapper {

    /**
     * 多条件分页查询企业信息列表
     * @Timestamp: 2022-11-1
     * @Author: LiBingKun
     * @param page 分页信息
     * @param enterprise 其余查询条件
     * @return 分页查询结果
     */
    IPage<EnterpriseVO> queryEnterpriseByPage(@Param("page")IPage page, @Param("enterpriseVO")EnterpriseVO enterprise);

    /**
     * 获取所有工商信息接口，对外提供
     * @param source
     * @return
     */
    List<EnterpriseVO> queryEnterprises(@Param("source")String source);

    /**
     * 保存工商信息
     * @Timestamp: 2022-11-3
     * @Author: LiBingKun
     * @param enterprise 需更新实体
     * @return 成功失败
     */
    Boolean insertEnterprises(@Param("enterpriseVO")EnterpriseVO enterprise);

    /**
     * 更新工商信息
     * @Timestamp: 2022-11-3
     * @Author: LiBingKun
     * @param enterprise 需更新实体
     * @return 成功失败
     */
    Boolean updateEnterprises(@Param("enterpriseVO")EnterpriseVO enterprise);


    /**
     * 删除工商信息
     * @Timestamp: 2022-11-3
     * @Author: LiBingKun
     * @param enterpriseId 需删除的ID
     * @return 成功失败
     */
    Boolean deleteEnterprisesById(@Param("enterpriseId")Integer enterpriseId);

    /**
     * 备份工商信息
     * @Timestamp: 2022-11-3
     * @Author: LiBingKun
     * @param backUserId 备份人
     * @param enterpriseId 备份ID
     * @return 成功失败
     */
    Boolean backEnterprisesData(@Param("backUserId")Integer backUserId,@Param("enterpriseId")Integer enterpriseId);

    /**
     * 更具部分条件查询工商信息是否存在
     * @Timestamp: 2022-11-3
     * @Author: LiBingKun
     * @param enterprise 条件封装实体类
     * @return true存在，false不存在
     */
    Boolean queryEnterpriseExit(@Param("enterpriseVO") EnterpriseVO enterprise);

    EnterpriseVO selectEnterprise(@Param("enterpriseId")Integer enterpriseId);
}
